# 爬取数据时并不需要看到浏览器窗口，只要有 Chrome 浏览器以及对应的驱动程序，我们的爬虫就能够运转起来。
# 如果不想看到浏览器窗口，我们可以通过下面的方式设置使用无头浏览器。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait           #显示等待模块
from selenium.webdriver.support import  expected_conditions         #判断元素模块，用于等待指定元素出现

# 创建Chrome参数对象，设置无头浏览器
options = webdriver.ChromeOptions()
options.add_argument('--headless')
browser = webdriver.Chrome(options=options)

browser.maximize_window()  # 窗口最大化
# browser.set_window_size(1200, 800)      #设置浏览器窗口大小
url = 'https://www.baidu.com'
browser.get(url)
#设置隐式等待时间为10s。（让浏览器完成对页面元素的渲染）
browser.implicitly_wait(10)
# 通过元素ID获取元素
kw_input = browser.find_element(By.ID, 'kw')
# 模拟用户输入行为
kw_input.send_keys('Python')
# 通过CSS选择器获取元素
su_button = browser.find_element(By.CSS_SELECTOR, '#su')
# 模拟用户点击行为
su_button.click()

#创建显示等待对象
wait_obj = WebDriverWait(browser, 10)
# 设置等待条件（等待搜索结果的div出现）
wait_obj.until(
    expected_conditions.presence_of_element_located(
        (By.CSS_SELECTOR, '#content_left')
    )
)


# 截屏
browser.get_screenshot_as_file('screen_byheadless.png')